a1df3c637c14af5572e9e0bed42a4c38e7770239,modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/FieldsParseElement.java,FieldsParseElement,parse,#XContentParser#SearchContext#,34
Before Change
if (name.contains("_source.") || name.contains("doc[")) {
// script field to load from source
SearchScript searchScript = new SearchScript(context.lookup(), null, name, null, context.scriptService());
context.scriptFields().add(new ScriptFieldsContext.ScriptField(name, searchScript));
} else {
FieldMapper fieldMapper = context.mapperService().smartNameFieldMapper(name);
if (!"*".equals(name) && (fieldMapper == null || !fieldMapper.stored())) {
After Change
context.fieldNames().add(name);
} else {
SearchScript searchScript = new SearchScript(context.lookup(), "mvel", "_source." + fieldMapper.names().fullName(), null, context.scriptService());
context.scriptFields().add(new ScriptFieldsContext.ScriptField(name, searchScript, true));
}
}
}
}
}
if (!added) {
context.emptyFieldNames();
}
} else if (token == XContentParser.Token.VALUE_STRING) {
String name = parser.text();
if (name.contains("_source.") || name.contains("doc[")) {
// script field to load from source
SearchScript searchScript = new SearchScript(context.lookup(), null, name, null, context.scriptService());
context.scriptFields().add(new ScriptFieldsContext.ScriptField(name, searchScript, true));
} else {
if ("*".equals(name)) {
context.fieldNames().add("*");